#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
测试版本：根据 ttt 目录下的 jpg 文件名，输出未匹配的文件
"""

import os
import re

def extract_song_info(filename):
    """从文件名中提取歌曲编号和标题"""
    name_without_ext = os.path.splitext(filename)[0]
    
    # 匹配编号和标题的模式
    pattern = r'^(\d+)\.\s*(.+)$'
    match = re.match(pattern, name_without_ext)
    
    if match:
        number = match.group(1)
        title = match.group(2).strip()
        return number, title
    else:
        # 尝试其他模式，比如 "005 Bingo"
        pattern2 = r'^(\d+)\s+(.+)$'
        match2 = re.match(pattern2, name_without_ext)
        if match2:
            number = match2.group(1)
            title = match2.group(2).strip()
            return number, title
        else:
            # 尝试处理带连字符的格式，如 "111-Rock-Scissors-Paper-#3"
            pattern3 = r'^(\d+)-(.+)$'
            match3 = re.match(pattern3, name_without_ext)
            if match3:
                number = match3.group(1)
                title = match3.group(2).strip()
                return number, title
    
    return None, None

def main():
    # 获取 ttt 目录下的所有 jpg 文件
    ttt_dir = "ttt"
    if not os.path.exists(ttt_dir):
        print(f"错误: {ttt_dir} 目录不存在")
        return
    
    jpg_files = [f for f in os.listdir(ttt_dir) if f.lower().endswith('.jpg')]
    
    print(f"在 {ttt_dir} 目录下找到 {len(jpg_files)} 个 jpg 文件")
    
    not_found_files = []
    
    for jpg_file in jpg_files:
        song_number, song_title = extract_song_info(jpg_file)
        
        if not song_number and not song_title:
            print(f"无法解析文件名: {jpg_file}")
            not_found_files.append(jpg_file)
            continue
        
        print(f"处理: {jpg_file} -> 编号: {song_number}, 标题: {song_title}")
    
    print(f"\n无法解析的文件列表:")
    for i, file in enumerate(not_found_files, 1):
        print(f"  {i}. {file}")

if __name__ == "__main__":
    main() 